home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / y2l.lha / y2l / Tables.h < prev    next >
C/C++ Source or Header  |  1992-08-20  |  2KB  |  60 lines

  1. /* variables and procedure for list management */
  2. #include "ratc.h"
  3.  
  4. # ifdef __STDC__
  5. # define ARGS(parameters)    parameters
  6. # else
  7. # define ARGS(parameters)    ()
  8. # endif
  9.  
  10. typedef struct tCell {
  11.         tStringRef car;
  12.         struct tCell * cdr;
  13.            };
  14.  
  15. typedef struct tElmt {
  16.         int tag; /* 0 = symbol, 1 = action, 2 = lhs, 3 = delim, 4 = last action  */
  17.         union {
  18.             tStringRef symbol;
  19.             struct tCell * action;
  20.               } car;
  21.         struct tElmt * cdr;
  22.            };
  23.  
  24. extern void put_name        ARGS((tStringRef name));
  25. extern void process_names    ();
  26.  
  27. extern void put_token        ARGS((tStringRef name, int value));
  28. extern void print_tokens    ();
  29.  
  30. extern int type;
  31.  
  32. extern void put_type        ARGS((tStringRef name, tStringRef type));
  33. extern tStringRef get_type    ARGS((int n));
  34.  
  35. extern void put_oper        ARGS((tStringRef s));
  36. extern void print_opers        ();
  37.  
  38. extern void put_global        ARGS((tStringRef v));
  39. extern void yacc_globals    ();
  40. extern void print_global    ();
  41.  
  42. extern struct tCell * action_list;
  43. extern void put_action        ARGS((tStringRef v));
  44.  
  45. extern tStringRef start_symbol;
  46.  
  47. extern struct tElmt * rule_elmts_list;
  48. extern void put_lhs         ARGS((tStringRef v));
  49. extern void put_symbol        ARGS((tStringRef v));
  50. extern void put_whole_action    ARGS((struct tCell * v, /* bool */ int b));
  51. extern void put_delim        ARGS((tStringRef v));
  52.  
  53. extern struct tCell * text_list;
  54. extern void append_text        ARGS((tStringRef v));
  55.  
  56. extern void put_text        ARGS((struct tCell * v));
  57. extern void put_rule        ARGS((struct tElmt * v));
  58. extern void print_rules        ();
  59. extern int generate_actions;
  60.